home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 11 / Cream of the Crop 11-2.iso / os2 / pmp40d.zip / DBUG.H < prev    next >
C/C++ Source or Header  |  1996-01-23  |  6KB  |  161 lines

  1. /*******************************************************************
  2. Name:  dbug.h
  3. Desc:  contains dbug macros, prototypes, and defines
  4. *******************************************************************/
  5.  
  6. /* double inclusion */
  7. #ifndef INCL_DBUG
  8. #define INCL_DBUG
  9.  
  10. /* define additional types */
  11. #if !defined(OS2_INCLUDED) && !defined(INCL_NEWTYPES1)
  12. #define INCL_NEWTYPES1
  13. typedef short            SHORT;
  14. typedef SHORT *          PSHORT;
  15. typedef unsigned short   USHORT;
  16. typedef USHORT *         PUSHORT;
  17. typedef long             LONG;
  18. typedef LONG *           PLONG;
  19. typedef unsigned long    ULONG;
  20. typedef ULONG *          PULONG;
  21. typedef char             CHAR;
  22. typedef CHAR *           PCHAR;
  23. typedef unsigned char    UCHAR;
  24. typedef UCHAR *          PUCHAR;
  25. typedef UCHAR            BYTE;
  26. typedef BYTE *           PBYTE;
  27. typedef int              INT;
  28. typedef INT *            PINT;
  29. typedef void             VOID;
  30. typedef VOID *           PVOID;
  31. typedef ULONG            BOOL;
  32. typedef BOOL *           PBOOL;
  33. #endif
  34.  
  35. #ifndef INCL_NEWTYPES2
  36. #define INCL_NEWTYPES2
  37. typedef double           DOUBLE;
  38. typedef DOUBLE *         PDOUBLE;
  39. typedef INT              FD;
  40.  
  41. #ifdef UNIX
  42. typedef INT              APIRC;
  43. typedef APIRC *          PAPIRC;
  44. typedef pid_t            PID;
  45. typedef unsigned int     TID;
  46. #ifndef APIENTRY
  47. #define APIENTRY
  48. #endif
  49. #else
  50. typedef ULONG            APIRC;
  51. typedef APIRC *          PAPIRC;
  52. typedef USHORT           APIRC16;
  53. typedef APIRC16 *        PAPIRC16;
  54. typedef USHORT           HFILE16;
  55. typedef HFILE16 *        PHFILE16;
  56. #ifndef APIENTRY
  57. #define APIENTRY         _System
  58. #endif
  59. #endif
  60. #endif
  61.  
  62. /* define message types and sizes */
  63. #define DBUG_TYPE_M        1L
  64. #define DBUG_TYPE_S        2L
  65. #define DBUG_TYPE_L        3L
  66. #define DBUG_TYPE_I        4L
  67. #define DBUG_TYPE_D        5L
  68. #define DBUG_TYPE_C        6L
  69. #define DBUG_TYPE_Z        7L
  70. #define DBUG_TYPE_P        8L
  71. #define DBUG_TYPE_V        9L
  72. #define DBUG_TYPE_STOP     1000L
  73. #define DBUG_TYPE_LOGOPEN  1001L
  74. #define DBUG_TYPE_LOGCLOSE 1002L
  75. #define DBUG_SIZE_TYPE_S   ((ULONG) sizeof(USHORT))
  76. #define DBUG_SIZE_TYPE_L   ((ULONG) sizeof(ULONG))
  77. #define DBUG_SIZE_TYPE_I   ((ULONG) sizeof(INT))
  78. #define DBUG_SIZE_TYPE_D   ((ULONG) sizeof(DOUBLE))
  79. #define DBUG_SIZE_TYPE_C   ((ULONG) sizeof(UCHAR))
  80. #define DBUG_SIZE_TYPE_P   ((ULONG) sizeof(ULONG))
  81.  
  82. /*******************************************************************
  83. DBUG macros
  84. *******************************************************************/
  85. #ifdef DEBUG
  86. #define DBUG(a,b,c) DBug(DBUG_TYPE_V, (PCHAR) a, b, c, __FILE__, __LINE__)
  87. #define DBUGS(a,b)  DBug(DBUG_TYPE_S, (PCHAR) a, DBUG_SIZE_TYPE_S, b, __FILE__, __LINE__)
  88. #define DBUGL(a,b)  DBug(DBUG_TYPE_L, (PCHAR) a, DBUG_SIZE_TYPE_L, b, __FILE__, __LINE__)
  89. #define DBUGI(a,b)  DBug(DBUG_TYPE_I, (PCHAR) a, DBUG_SIZE_TYPE_I, b, __FILE__, __LINE__)
  90. #define DBUGD(a,b)  DBug(DBUG_TYPE_D, (PCHAR) a, DBUG_SIZE_TYPE_D, b, __FILE__, __LINE__)
  91. #define DBUGC(a,b)  DBug(DBUG_TYPE_C, (PCHAR) a, DBUG_SIZE_TYPE_C, b, __FILE__, __LINE__)
  92. #define DBUGP(a,b)  DBug(DBUG_TYPE_P, (PCHAR) a, DBUG_SIZE_TYPE_P, b, __FILE__, __LINE__)
  93. #define DBUGZ(a,b)  DBug(DBUG_TYPE_Z, (PCHAR) a, strlen(a)+1,      b, __FILE__, __LINE__)
  94. #define DBUGM(a)    DBug(DBUG_TYPE_M, (PCHAR) NULL, 0,             a, __FILE__, __LINE__)
  95. #define DBUGSTOP()  DBug(DBUG_TYPE_STOP,     (PCHAR) NULL, 0,   NULL, __FILE__, __LINE__)
  96. #define DBUGOPEN()  DBug(DBUG_TYPE_LOGOPEN,  (PCHAR) NULL, 0,   NULL, __FILE__, __LINE__)
  97. #define DBUGCLOSE() DBug(DBUG_TYPE_LOGCLOSE, (PCHAR) NULL, 0,   NULL, __FILE__, __LINE__)
  98.  
  99. /*******************************************************************
  100. DBUG printf macros
  101. *******************************************************************/
  102. #define DBUG_M(a)    printf("%s/%04d  INFO: "   #a "\n", __FILE__, __LINE__)
  103. #define DBUG_S(a,b)  printf("%s/%04d  SHORT: "  #a "=[%hd]  Note: %s\n", __FILE__, __LINE__, a, b)
  104. #define DBUG_US(a,b) printf("%s/%04d  USHORT: " #a "=[%hu]  Note: %s\n", __FILE__, __LINE__, a, b)
  105. #define DBUG_L(a,b)  printf("%s/%04d  LONG: "   #a "=[%ld]  Note: %s\n", __FILE__, __LINE__, a, b)
  106. #define DBUG_UL(a,b) printf("%s/%04d  ULONG: "  #a "=[%lu]  Note: %s\n", __FILE__, __LINE__, a, b)
  107. #define DBUG_I(a,b)  printf("%s/%04d  INT: "    #a "=[%d]  Note: %s\n", __FILE__, __LINE__, a, b)
  108. #define DBUG_D(a,b)  printf("%s/%04d  DOUBLE: " #a "=[%f]  Note: %s\n", __FILE__, __LINE__, a, b)
  109. #define DBUG_C(a,b)  printf("%s/%04d  CHAR: "   #a "=[%c]  Note: %s\n", __FILE__, __LINE__, a, b)
  110. #define DBUG_Z(a,b)  printf("%s/%04d  PCHAR: "  #a "=[%s]  Note: %s\n", __FILE__, __LINE__, a, b)
  111. #define DBUG_P(a,b)  printf("%s/%04d  PTR: "    #a "=[%p]  Note: %s\n", __FILE__, __LINE__, a, b)
  112. #define DBUG_X(a,b)  printf("%s/%04d  HEX: "    #a "=[%x]  Note: %s\n", __FILE__, __LINE__, a, b)
  113. #define DBUG_O(a,b)  printf("%s/%04d  OCT: "    #a "=[%o]  Note: %s\n", __FILE__, __LINE__, a, b)
  114. #define DBUG_E(a,b)  printf("%s/%04d  EXP: "    #a "=[%e]  Note: %s\n", __FILE__, __LINE__, a, b)
  115.  
  116. /*******************************************************************
  117. DBUG prototype
  118. *******************************************************************/
  119. #ifdef __cplusplus
  120. extern "C" {
  121. #endif
  122. APIRC APIENTRY DBug(ULONG msgType, PCHAR data, USHORT dataLen, PCHAR note,
  123.                     PCHAR file, USHORT line);
  124. #ifdef __cplusplus
  125. }
  126. #endif
  127.  
  128. /*******************************************************************
  129. DBUG null macros
  130. *******************************************************************/
  131. #else
  132. #define DBUG(a,b,c)
  133. #define DBUGS(a,b)
  134. #define DBUGL(a,b)
  135. #define DBUGI(a,b)
  136. #define DBUGD(a,b)
  137. #define DBUGC(a,b)
  138. #define DBUGP(a,b)
  139. #define DBUGZ(a,b)
  140. #define DBUGM(a)
  141. #define DBUGSTOP()
  142. #define DBUGOPEN()
  143. #define DBUGCLOSE()
  144.  
  145. #define DBUG_M(a)
  146. #define DBUG_S(a,b)
  147. #define DBUG_US(a,b)
  148. #define DBUG_L(a,b)
  149. #define DBUG_UL(a,b)
  150. #define DBUG_I(a,b)
  151. #define DBUG_D(a,b)
  152. #define DBUG_C(a,b)
  153. #define DBUG_Z(a,b)
  154. #define DBUG_P(a,b)
  155. #define DBUG_X(a,b)
  156. #define DBUG_O(a,b)
  157. #define DBUG_E(a,b)
  158. #endif
  159.  
  160. #endif
  161.